home *** CD-ROM | disk | FTP | other *** search
/ Language/OS - Multiplatform Resource Library / LANGUAGE OS.iso / lisp / eulisp / feel-075.lha / feel0.75 / Src / Makefile < prev    next >
Makefile  |  1992-07-07  |  9KB  |  310 lines

  1. # ###################################################################### #
  2. # The FEEL makefile...                                                   #
  3. # ###################################################################### #
  4.  
  5. #
  6. # $Id: Makefile,v 1.8.1.3 1992/06/18 19:45:13 pab Exp $
  7. #
  8.  
  9. ##########################################################################
  10. # Customisation section...                                               #
  11. ##########################################################################
  12.  
  13. # Edit the following for your favourite machine.
  14.  
  15. # Where Src directory lives
  16. BASE = /net/brad/denton_export/denton/You/NewYou
  17.  
  18. # Feel knows about the systems below:
  19. # Stardent RS6000 Gould Sun4 Sun3 Clipper Vax Alliant Meiko 386
  20.  
  21. # Here is some info in case you have something different:
  22. #     WITH_SYSTEMV_SOCKETS - System V IP communication
  23. #     WITH_BSD_SOCKETS     - BSD IP communication (4.3, or see defs.h)
  24. #     WITH_SYSTEMV_SIGNALS - System V signalling
  25. #     WITH_BSD_SIGNALS     - BSD signalling
  26. #     DONT_HAVE_STDLIB_H   - half-hearted ANSI without stdlib.h
  27. #     ALIGN8 - if the machine is fussy about 8 byte alignments, e.g., doubles
  28. #     TRAP_ALL           - vauge attempt to catch segvs, buses, etc. implied by 
  29. #                 MACHINE=SYSTEMV
  30. # Architecture and machine type...
  31. # MACHINE is ANY,BSD or SystemV. 
  32. # ANY is any 'reasonable' architecture --- things that run UNIX, and many others
  33. # BSD is supported on any machine with a *-switch.s file in this 
  34. # directory. See the note in the manual for what it does, and how to port it.
  35. # SystemV is for sun3/4, Stardents and Alliant concentrix machines 
  36. # It ought to work for any UNIX machine that has shared memory primitives 
  37. # and that BSD config. works for.
  38. # BTW, BSD works on MSDOS boxes(!)
  39. # Systems not listed but have worked in the 'ANY' config:
  40. # DEC MIPS (try hacking the ard-switch code for BSD version)
  41.  
  42. # Extra goodies, won't necesarily work
  43. # -DBCI         Want a bytecode interpreter?
  44. # -DLOWTAGINTS        Low tag integers kind of work, 
  45. #            but break the addons code (and maybe other things)
  46. #     READLINE           - used to work. Bit rot may have set in here.
  47.  
  48. # common options
  49.  
  50. # how to optimise your code
  51. STDOFLAGS = # -DDEBUG
  52.  
  53. # everybody needs these
  54. STDFLAGS =  -DWITH_FUDGE 
  55.  
  56. # Stardent
  57. #MFLAGS = -DWITH_SYSTEMV_SOCKETS \
  58. #        -DDONT_HAVE_STDLIB_H -DBCI
  59. #OFLAGS =  -O -inline 
  60. #MACHINE = BSD # Can be SYSTEMV
  61. #ARCH = ard#a43
  62. #CC = cc  #-43
  63. #LIBS = -lm
  64.  
  65. # Sun4
  66. #MFLAGS = -DWITH_SYSTEMV_SOCKETS -DDONT_HAVE_STDLIB_H -DBCI -DALIGN8 -DWITH_BSD_SIGNALS
  67. #OFLAGS = -O  
  68. #MACHINE = SYSTEMV #or SYSTEMV, for the keen
  69. #ARCH = sun4
  70. #CC = gcc
  71. #LIBS = -lm
  72.  
  73. # RS6000
  74. #MFLAGS = -DWITH_SYSTEMV_SOCKETS \
  75. #         -DWITH_SYSTEMV_SIGNALS -DTRAP_ALL -D_ALL_SOURCE
  76. #MACHINE = ANY
  77. #ARCH = any
  78. #CC = xlc
  79. #LIBS = -lm
  80.  
  81. # Gould
  82. #MFLAGS = -DWITH_BSD_SIGNALS \
  83. #        -DDONT_HAVE_STDLIB_H  -DALIGN8
  84. #MACHINE = ANY
  85. #ARCH = any
  86. #CC = gcc
  87. #LIBS = -lm
  88.  
  89.  
  90. # Sun3
  91. MFLAGS =  -DWITH_BSD_SOCKETS -DWITH_BSD_SIGNALS # -DDONT_HAVE_STDLIB_H
  92. MACHINE = SYSTEMV # Or BSD
  93. ARCH = sun3
  94. CC = gcc
  95. LIBS = -lm
  96.  
  97. # Clipper
  98. #MFLAGS = -DWITH_BSD_SIGNALS -DALIGN8 
  99. #MACHINE = BSD
  100. #ARCH = clip
  101. #CC = ncc
  102. #LIBS = /lib/crt0.o
  103.  
  104. # Vax
  105. #MFLAGS = -mg -O -DDONT_HAVE_STDLIB_H -DBCI
  106. #MACHINE = ANY
  107. #ARCH = any
  108. #CC = gcc
  109. #LIBS = -lmg
  110.  
  111. # Alliant
  112. #MFLAGS = -DWITH_BSD_SIGNALS -DWITH_BSD_SOCKETS -DALIGN8
  113. #MACHINE = SYSTEMV
  114. #ARCH = i860
  115. #CC = fxc
  116. #LIBS = -lm
  117.  
  118. # Meiko
  119. # MFLAGS =
  120. # MACHINE = ANY
  121. # CC = mcc
  122. # LIBS = -lm
  123. # EXTRASRCS = 
  124. # EXTRAOBJS =
  125.  
  126. # 386
  127. # ...
  128. #MFLAGS = -DWITH_SYSTEMV_SOCKETS \
  129. #        -DDONT_HAVE_STDLIB_H -DBCI
  130. #OFLAGS =  -O 
  131. #MACHINE = BSD
  132. #ARCH = 386
  133. #CC = gcc  #-43
  134. #LIBS = -lm
  135.  
  136. # i860
  137. # Not an alliant? 
  138. # Try MACHINE=BSD, then change the shared memory primitives around
  139. #
  140.  
  141. # ################################################################### #
  142. # Sundry constants                              #
  143. # ################################################################### #
  144. LEX = flex
  145. YACC = bison -y -t
  146.  
  147. # Local module path
  148.  
  149. MODULE_PATH = ${BASE}/Modules/
  150.  
  151. # Semaphoring...
  152. # Hardware semaphores are OK, but
  153. SEMAPHORES = SOFTWARE
  154.  
  155. # Do the business...
  156.  
  157. # ###################################################################### #
  158. # Working section...                                                     #
  159. # ###################################################################### #
  160.  
  161. LOAD_PATH_NAME = FEEL_LOAD_PATH
  162.  
  163. MACHINEABBREV = ${ARCH}
  164. DATE = `date`
  165.  
  166. # invent flags
  167. FLAGS = ${STDFLAGS} ${STDOFLAGS} ${MFLAGS} ${OFLAGS}
  168. # Reader specific sources...
  169.  
  170. READERSOURCES = lex.yy.c y.tab.c alloca.c
  171.  
  172. READEROBJECTS = lex.yy.o y.tab.o alloca.o
  173.  
  174. # Default Elvira sources...
  175.  
  176. ELVIRASOURCES = initelv.c
  177.  
  178. ELVIRAOBJECTS = initelv.o
  179.  
  180. # Garbage collector sources
  181.  
  182. GCOBJECTS = ../CGC/gc.o remalloc.o 
  183.  
  184. # Main sources...
  185.  
  186. SOURCES = copyalloc.c copy.c arith.c basic.c chars.c error.c \
  187.       main.c modules.c print.c read.c set.c streams.c \
  188.       table.c vectors.c bootstrap.c lists.c listops.c \
  189.       class.c slots.c ngenerics.c \
  190.           symboot.c modboot.c toplevel.c root.c specials.c \
  191.       calls.c ccc.c macros.c system.c semaphores.c state.c \
  192.       format.c sockets.c sio.c modops.c lamport.c bvecs2.c 
  193.  
  194. OBJECTS = copyalloc.o copy.o arith.o basic.o chars.o error.o \
  195.       main.o modules.o print.o read.o set.o streams.o \
  196.       table.o vectors.o bootstrap.o lists.o listops.o \
  197.       class.o slots.o ngenerics.o  \
  198.           symboot.o modboot.o toplevel.o root.o specials.o \
  199.       calls.o ccc.o macros.o system.o semaphores.o state.o \
  200.       format.o sockets.o sio.o modops.o lamport.o bvecs2.o 
  201.  
  202. HDRS = bootstrap.h   generics.h    modules.h     specials.h    toplevel.h \
  203.     calls.h       global.h      ngenerics.h   state.h       vectors.h \
  204.     ccc.h         lamport.h     objects.h     structs.h     version.h \
  205.     class.h       lex_global.h  root.h        symboot.h     y.tab.h      \
  206.     copy.h        listops.h     runtime.h     syssockets.h    funcalls.h weak.h \
  207.     defs.h        lists.h       semaphores.h  system_p.h    yyfudge.c    allocate.h  \
  208.     error.h       macros.h      sio.h         system_t.h    bvf.h    modops.h garbage.h  \
  209.     format.h      modboot.h     slots.h       table.h    threads.h iset.h sockets.h  \
  210.     interpret.h   bytecodes.h
  211.  
  212. COSOURCES = ${MACHINEABBREV}-switch.s threads.c 
  213.  
  214. COOBJECTS = ${MACHINEABBREV}-switch.o threads.o
  215.  
  216. DISTRIBCO = sun3-switch.s sun4-switch.s ard-switch.s clip-switch.s any-switch.s i860-switch.s \
  217.         386-switch.s Makefile Makefile.386
  218.  
  219. KERNELLISP= defs.em extras0.em initcode.em macros0.em standard0.em sockets.em semaphores.em bitvecs.em
  220.  
  221.  
  222. # Lisp object file
  223.  
  224. LISPOBJECTS = LispSrc/all-lisp.o
  225.  
  226. ISOURCES = interpret.c
  227. IHDRS = bytecodes.h interpret.h
  228. IOBJECTS = interp.o
  229. # Lisp object file
  230.  
  231. LISPOBJECTS = LispSrc/all-lisp.o
  232.  
  233. you:    ${OBJECTS} ${COOBJECTS} ${READEROBJECTS} ${ELVIRAOBJECTS} ${IOBJECTS}
  234.     -touch you
  235.     rm you
  236.     ${CC}  -o you ${OBJECTS} ${COOBJECTS} \
  237.              ${READEROBJECTS} ${IOBJECTS} ${ELVIRAOBJECTS} ${LIBS}
  238.     echo 
  239.  
  240. proyou:    ${OBJECTS} ${COOBJECTS} ${READEROBJECTS} ${ELVIRAOBJECTS}
  241.     ${CC} -p -o proyou ${OBJECTS} ${COOBJECTS} \
  242.                     ${READEROBJECTS} ${ELVIRAOBJECTS} ${LIBS}
  243.     echo 
  244.  
  245. elvira:    ${OBJECTS} ${COOBJECTS} ${READEROBJECTS} ${IOBJECTS}
  246.     ld -r -o feel_elvira.o ${OBJECTS} ${COOBJECTS} ${READEROBJECTS} ${IOBJECTS}
  247.     mv feel_elvira.o ../Objs/${ARCH}-elvira.o
  248.     echo 
  249.  
  250. feel_elvira.o:    elvira
  251.  
  252. feel:    feel_elvira.o ${LISPOBJECTS}
  253.     (cd LispSrc; make all-lisp.o)
  254.     ecc -o feel ${LISPOBJECTS}
  255.     echo  
  256.  
  257. reader:        
  258.     ${LEX} comp.lex
  259.     ${YACC} test.yac
  260.  
  261. # Sicko bytecode hacking
  262. # preprocess explicitly, then compile the result, after stripping out
  263. # cpp control codes. Ugh. Makes debugging easier though.
  264. interp.o: interpret.c bytecodes.h interpret.h
  265.     ${CC} -c interpret.c ${FLAGS} \
  266.          -DMACHINE_${MACHINE} \
  267.          -DMODULE_PATH=\"${MODULE_PATH}\" \
  268.          -DLOAD_PATH_NAME=\"${LOAD_PATH_NAME}\" \
  269.          -DSEMAPHORES_${SEMAPHORES} \
  270.          -DMAKE_DATE="\"${DATE}\"" 
  271.     mv interpret.o interp.o
  272.  
  273. .c.o:
  274.     ${CC} -c $*.c ${FLAGS} \
  275.          -DMACHINE_${MACHINE} \
  276.          -DMODULE_PATH=\"${MODULE_PATH}\" \
  277.          -DLOAD_PATH_NAME=\"${LOAD_PATH_NAME}\" \
  278.          -DSEMAPHORES_${SEMAPHORES} \
  279.          -DMAKE_DATE="\"${DATE}\"" 
  280.  
  281.  
  282.  
  283.  
  284. version: ${SOURCES} ${COSOURCES} ${READERSOURCES} ${ELVIRASOURCES} ${DISTRIBCO} ${HDRS} ${KERNELLISP}
  285.     rcsfreeze 
  286.  
  287. tar: ${SOURCES} ${COSOURCES} ${READERSOURCES} ${ELVIRASOURCES} ${DISTRIBCO} \
  288.     ${HDRS} ${KERNELLISP} ${ISOURCES} ${IHDRS}
  289.     tar chf -  ${SOURCES} ${COSOURCES} ${READERSOURCES} ${ELVIRASOURCES} \
  290.                ${DISTRIBCO} ${HDRS} ${KERNELLISP} ${ISOURCES} ${IHDRS} \
  291.       | compress > you.tar.Z
  292.  
  293. # Rather assumes that you have X...
  294.  
  295. depend: ${SOURCES} ${HDRS} ${READERSOURCES} ${COSOURCES}
  296.     makedepend -s "# DO NOT DELETE THIS LINE" -- ${FLAGS} -- ${SOURCES} ${COSOURCES} 
  297.  
  298. clean:
  299.     rm ${OBJECTS} ${COOBJECTS} ${READEROBJECTS} you
  300.  
  301.  
  302. ${MACHINE}-coroutine.o:    ${MACHINE}-coroutine.s
  303.         ${CC} -c ${MACHINE}-coroutine.s
  304.  
  305. #if there is odd stuff below this line, remove it and do make depend.
  306. # if make depend fails don't worry. It only gets the header dependencies 
  307. # right.
  308. # DO NOT DELETE THIS LINE
  309.